package com.ljx.reflect.reflect04;

/**
 * @author LJX
 * @Description: TODO
 * @Date: 2022/10/27 16:03
 * @Version 1.0
 */
public class Test {
	// 获取class类对象有三种形式1：通过类名.class获取，
	// 通过对象.getClass获取，还可以同通过，Class.ForName(类名全路径获取)
	public static void main(String[] args) throws Exception{
		Class<?> aClass = Class.forName("com.ljx.reflect.reflect04.Student");
		Class<Student> studentClass = Student.class;
		Student student = new Student();
		Class<? extends Student> aClass1 = student.getClass();
		// 都是获取同一个反射类对象，所指向内存址指相同
		System.out.println(aClass==studentClass && aClass==aClass1 && aClass1==studentClass);// true


		// 通过反射类获取对应的类对象(类似于船舰对象，每一个对象的内存地址都不相同)
		Object o = aClass.newInstance();
		Student student1 = studentClass.newInstance();
		Student student2 = aClass1.newInstance();
		System.out.println(o==student1 && student1==student2);// false
	}
}

class Student{

}